package pe.gob.osce.sirenas.model.jpa;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;


@Entity
@Table(name="DET_REG_EXP_LABORAL",schema="RNAS")
@SequenceGenerator(name="sqExperiencia_Laboral",sequenceName="RNAS.ID_DET_EXP_LABORAL", allocationSize=1)
public class ExperienciaLaboral implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 6727323118784723519L;

	@Id
	@GeneratedValue(strategy =	GenerationType.SEQUENCE, generator="sqExperiencia_Laboral")
	@Column(name="N_ID_LABORAL")
	private Long idLaboral;		
	@Column(name="N_ID_FICHA")
	private Long idFicha;	
	@Column(name="N_IND_ESPECIALIDAD")
	private Integer indEspecialidad;	
	@Column(name="C_NOM_CENTRO_TRABAJO")
	private String nomCentroTrabajo;	
	@Column(name="C_DES_CARGO")
	private String descripcionCargo;	
	@Column(name="D_FEC_INGRESO")
	private Date fecIngreso;	
	@Column(name="D_FEC_EGRESO")
	private Date fecEgreso;	
	@Column(name="N_IND_ACTUAL")
	private Boolean indicadorActual;	
	@Column(name="N_IND_ESTADO",columnDefinition = "DEFAULT  '1'")
	private Long estado;
	@Column(name="C_COD_REGISTRO")
	private String codRegistro;	
	@Column(name="C_COD_TRAMITE")
	private String codTramite;	
	
	@Embedded
	private Auditoria auditoria;
	
	@ManyToOne( cascade = { CascadeType.ALL } )
	@JoinColumn(name="N_ID_FICHA", insertable=false, updatable=false)
    private FichaArbitral fichaArbitral;

	/**
	 * Metodo que permite obtener idLaboral.
	 * @return idLaboral , tipo Long.
	 */
	public Long getIdLaboral() {
		return idLaboral;
	}

	/**
	 * Permite actualizar idLaboral.
	 * @param idLaboral, tipo Long.
	 */
	public void setIdLaboral(Long idLaboral) {
		this.idLaboral = idLaboral;
	}

	/**
	 * Metodo que permite obtener idFicha.
	 * @return idFicha , tipo Long.
	 */
	public Long getIdFicha() {
		return idFicha;
	}

	/**
	 * Permite actualizar idFicha.
	 * @param idFicha, tipo Long.
	 */
	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}

	/**
	 * Metodo que permite obtener indEspecialidad.
	 * @return indEspecialidad , tipo Integer.
	 */
	public Integer getIndEspecialidad() {
		return indEspecialidad;
	}

	/**
	 * Permite actualizar indEspecialidad.
	 * @param indEspecialidad, tipo Integer.
	 */
	public void setIndEspecialidad(Integer indEspecialidad) {
		this.indEspecialidad = indEspecialidad;
	}

	/**
	 * Metodo que permite obtener nomCentroTrabajo.
	 * @return nomCentroTrabajo , tipo String.
	 */
	public String getNomCentroTrabajo() {
		return nomCentroTrabajo;
	}

	/**
	 * Permite actualizar nomCentroTrabajo.
	 * @param nomCentroTrabajo, tipo String.
	 */
	public void setNomCentroTrabajo(String nomCentroTrabajo) {
		this.nomCentroTrabajo = nomCentroTrabajo;
	}

	/**
	 * Metodo que permite obtener descripcionCargo.
	 * @return descripcionCargo , tipo String.
	 */
	public String getDescripcionCargo() {
		return descripcionCargo;
	}

	/**
	 * Permite actualizar descripcionCargo.
	 * @param descripcionCargo, tipo String.
	 */
	public void setDescripcionCargo(String descripcionCargo) {
		this.descripcionCargo = descripcionCargo;
	}

	/**
	 * Metodo que permite obtener fecIngreso.
	 * @return fecIngreso , tipo Date.
	 */
	public Date getFecIngreso() {
		return fecIngreso;
	}

	/**
	 * Permite actualizar fecIngreso.
	 * @param fecIngreso, tipo Date.
	 */
	public void setFecIngreso(Date fecIngreso) {
		this.fecIngreso = fecIngreso;
	}

	/**
	 * Metodo que permite obtener fecEgreso.
	 * @return fecEgreso , tipo Date.
	 */
	public Date getFecEgreso() {
		return fecEgreso;
	}

	/**
	 * Permite actualizar fecEgreso.
	 * @param fecEgreso, tipo Date.
	 */
	public void setFecEgreso(Date fecEgreso) {
		this.fecEgreso = fecEgreso;
	}

	/**
	 * Metodo que permite obtener indicadorActual.
	 * @return indicadorActual , tipo Boolean.
	 */
	public Boolean getIndicadorActual() {
		return indicadorActual;
	}

	/**
	 * Permite actualizar indicadorActual.
	 * @param indicadorActual, tipo Boolean.
	 */
	public void setIndicadorActual(Boolean indicadorActual) {
		this.indicadorActual = indicadorActual;
	}

	/**
	 * Metodo que permite obtener estado.
	 * @return estado , tipo Long.
	 */
	public Long getEstado() {
		return estado;
	}

	/**
	 * Permite actualizar estado.
	 * @param estado, tipo Long.
	 */
	public void setEstado(Long estado) {
		this.estado = estado;
	}


	/**
	 * Metodo que permite obtener codRegistro.
	 * @return codRegistro , tipo String.
	 */
	public String getCodRegistro() {
		return codRegistro;
	}

	/**
	 * Permite actualizar codRegistro.
	 * @param codRegistro, tipo String.
	 */
	public void setCodRegistro(String codRegistro) {
		this.codRegistro = codRegistro;
	}

	/**
	 * Metodo que permite obtener auditoria.
	 * @return auditoria , tipo Auditoria.
	 */
	public Auditoria getAuditoria() {
		return auditoria;
	}

	/**
	 * Permite actualizar auditoria.
	 * @param auditoria, tipo Auditoria.
	 */
	public void setAuditoria(Auditoria auditoria) {
		this.auditoria = auditoria;
	}

	/**
	 * Metodo que permite obtener fichaArbitral.
	 * @return fichaArbitral , tipo FichaArbitral.
	 */
	public FichaArbitral getFichaArbitral() {
		return fichaArbitral;
	}

	/**
	 * Permite actualizar fichaArbitral.
	 * @param fichaArbitral, tipo FichaArbitral.
	 */
	public void setFichaArbitral(FichaArbitral fichaArbitral) {
		this.fichaArbitral = fichaArbitral;
	}

	/**
	 * Metodo que permite obtener codTramite.
	 * @return codTramite , tipo String.
	 */
	public String getCodTramite() {
		return codTramite;
	}

	/**
	 * Permite actualizar codTramite.
	 * @param codTramite, tipo String.
	 */
	public void setCodTramite(String codTramite) {
		this.codTramite = codTramite;
	}

}
